package fr.uniscol.service.impl;

import fr.uniscol.dao.IClasseDao;
import fr.uniscol.dao.IGroupeDao;
import fr.uniscol.model.BaseAnneeScolaire;
import fr.uniscol.model.Classe;
import fr.uniscol.model.Groupe;
import fr.uniscol.service.IGroupeService;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

@Service("groupeService")
public class GroupeServiceImpl implements IGroupeService {

	@Autowired
	private IGroupeDao groupeDao;
	
    @Autowired
    private IClasseDao classeDao;
    
	@Override
	public boolean saveGroupe(Groupe groupe) {
		return groupeDao.saveGroupe(groupe);
	}
 
    @Override
    public List<Groupe> getAllGroupesOfEtablissement(BaseAnneeScolaire base) {
        return groupeDao.getAllGroupesOfEtablissement(base);
    }

    @Override
    @Transactional(readOnly = true)
    public Groupe getGroupeById(long structureId) {
        Groupe groupe = groupeDao.getGroupeById(structureId);
        
        groupe.setMefs(classeDao.getMefsAppartenanceOfStructure(groupe));
        groupe.setStructuresAppartenance(groupeDao.getStructuresAppartenance(groupe));
        
        return groupe;
    }

    @Override
    public List<Classe> getStructuresAppartenance(Groupe groupe) {
        return groupeDao.getStructuresAppartenance(groupe);
    }
}
